package ${package.Stereotype}.util;

import javax.validation.GroupSequence;

/**
 * 分组校验对象
 * @Valid与@Validated
 * @desc
 *   都是做数据校验的，只不过注解位置与用法有点不同。
 *   区别:
 *   - 后者是spring实现
 *   - 前者不能注解在类上,后者不能注解在成员属性上
 *   - 后者比起前者提供了分组校验的功能
 * 这里使用的是后者
 */
public class ValidGroup {

    // 新增使用(配合spring的@Validated功能分组使用)
    public interface Insert{}

    // 更新使用(配合spring的@Validated功能分组使用)
    public interface Update{}

    // 更新一个状态值使用(配合spring的@Validated功能分组使用)
    public interface UpdateState{}

    // 删除使用(配合spring的@Validated功能分组使用)
    public interface Delete{}

    // 查询单个记录(配合spring的@Validated功能分组使用)
    public interface SelectOne{}

    @GroupSequence({Insert.class, Update.class,UpdateState.class,Delete.class, SelectOne.class})
    public interface All{}
}
